const mysql = require('mysql')
const {MYSQL_ENV}= require('../config/mysql')
// const connection = mysql.createConnection({
//   host:'127.0.0.1',
//   user:'root',
//   password:'ABC123',
//   database:'practice_system'
// })
// connection.connect();

// var str = "select * from questiontype"
// connection.query(str,function(err,result,fields){
//   if(err) throw err;
//   console.log('result: ' ,result);
// })

// console.log('connection : ', connection.state);

// connection.end();


// function initPool(){

// }
// const pool = mysql.createPool(MYSQL_ENV)
    
// function executeSQL(sqlString = "",values = []){
//     return new Promise((resolve,reject) =>{
//         pool.getConnection((err,connection) => {
//             if(err){
//                 reject(err);
//                 console.error(err);
//                 return; 
//             }
//             connection.query(sqlString,values,function(err,result,fields){
//                 if(err){
//                     reject(err);
//                     return;
//                 }
//                 resolve(result);
//                 //console.log('result: ' ,result);
//               })
//           connection.release();
//           })
//     })
// }





/**
 * @description SQL执行函数。
 * @exanple
 * executeSQL("select * from table where id = '?',[1])
 * .then(result =>{
 *      console.log("result : ",result);
 * })
 * @param {String} sqlString 查询字符串。内部能够使用带有值的占位符"?"
 * @param {Array} values 数组：转移查询值数组。数组长度应与查询字符串内占位符的个数一致
 * @returns {Promise} 通过Promise返回一个SQL执行结果
 * 
 */
function executeSQL(sqlString = "",values = null){
    let connection = mysql.createConnection(MYSQL_ENV);
    return new Promise((resolve,reject) =>{
            connection.query(sqlString,values,function(err,result,fields){
                //fields 暂时没被使用
                if(err){
                    reject(err);
                    return;
                }
                resolve(result);
                //console.log('result: ' ,result);
              })
          connection.end();
    })
}

module.exports = {
    'executeSQL' : executeSQL
}